//
//  NameSpaceCompatible.swift
//  MGOA-iOS
//
//  Created by zhongshan on 2022/11/7.
//

import Foundation

public protocol NameSpaceCompatible {
    associatedtype ExtensionTargetType
    var po: NameSpaceWrapper<ExtensionTargetType> { get }
    static var po: NameSpaceWrapper<ExtensionTargetType>.Type { get }
}

public extension NameSpaceCompatible {
    var po: NameSpaceWrapper<Self> {
        return NameSpaceWrapper<Self>(base: self)
    }
    
    static var po: NameSpaceWrapper<Self>.Type {
        return NameSpaceWrapper<Self>.self
    }
}

public struct NameSpaceWrapper<Base> {
    public let base: Base
}
